package com.syf.kit.soa.core.spi;

import com.syf.kit.soa.config.SOARegionClientConfiguration;
import com.syf.kit.soa.core.SOARegionInfo;

import java.util.List;

public interface SOARegionStorage {
    /**
     * 加载配置信息，以便初始化通信client
     */
    void loadConfig(SOARegionClientConfiguration config);

    /**
     * 设置ServiceRegionInfo信息，以便随机启动注册实例，停机注销服务实例
     */
    void setServiceRegionInfo(SOARegionInfo regionInfo);

    /**
     * 登记服务（服务注册）
     */
    void registerServiceRegion();

    /**
     * 注销服务
     */
    void deregisterServiceRegion();

    /**
     * 查找服务（自动发现）
     */
    List<SOARegionInfo> discoveryService(String regionName);
}
